const path = require('path')
// 当前文件的路径拼接上dir
function resolve(dir) {
  return path.join(__dirname, dir)
}

module.exports = {
  publicPath: process.env.NODE_ENV === 'production' ? '/' : './',
  chainWebpack: (config) => {
    const svgRule = config.module.rule('svg')
    // 清除所有的loader。
    // 如果没有这么做，接下来的loader会附加在该规则现有的loader之后
    svgRule.uses.clear()
    svgRule.include.add(resolve('src/icons'))
    // 添加要替换的loader
    svgRule
      .test(/\.svg$/)
      .use('svg-sprite-loader')
      .loader('svg-sprite-loader')
      .options({ symbolId: 'icon-[name]' })

    // 修改images loader 添加svg处理
    const imagesRule = config.module.rule('images')
    imagesRule.exclude.add(resolve('src/icons'))
    imagesRule.test(/\.(png|jpe?g|gif|webp|svg)(\?.*)?$/)
  },
  css: {
    loaderOptions: {
      sass: {
        // 将variables.scss文件的变量作为全局变量
        data: `@import "@/assets/scss/_variables.scss";`
      }
    }
  }
}
